package com.alibaba.citrus.ots.sales.plan.sdo;

import com.alibaba.citrus.ots.sales.plan.model.features.SalesPlanDetailFeatures;
import com.google.gson.annotations.SerializedName;
import lombok.Builder;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@Builder
public class SalesPlanDetailSDO implements Serializable {
    private static final long serialVersionUID = -3449542286693616244L;

    /**
     * 明细ID
     */
    private Long id;

    /**
     * 月度计划ID
     */
    private String planId;

    /**
     * 渠道编码
     */
    private String channelCode;

    /**
     * 组织业务单位编码
     */
    private String orgBusinessUnitCode;

    /**
     *组织销售组织编码
     */
    private String orgSalesOrganizationCode;

    /**
     * 组织销售渠道编码
     */
    private String orgSalesChannelCode;

    /**
     * 组织销售部门编码
     */
    private String orgSalesDepartmentCode;

    /**
     * 客户编码
     */
    private String customerCode;

    /**
     * 客户地址
     */
    private String customerAddress;

    /**
     * 负责人ID
     */
    private String manageEmployeeId;

    /**
     * 货品ID
     */
    private String scItemId;

    /**
     * 货品组
     */
    private String scItemGroup;

    /**
     * 类目叶子节点
     */
    private String scItemLeafCategoryId;

    /**
     * 类目根节点
     */
    private String scItemRootCategoryId;

    /**
     * 出库价
     */
    private Long outboundPrice;

    /**
     * 到岸价
     */
    private Long costInsuranceFreight;

    /**
     * 估计折扣价
     */
    private Long estimatedDiscountPrice;

    /**
     * 基本单位
     */
    private String basicUnit;

    /**
     *月份合同量
     */
    private Integer monthContractCount;

    /**
     * 折后合同金额
     */
    private Long monthContractMoney;

    /**
     * 折前合同金额
     */
    private Long beforeMonthContractMoney;

    /**
     * 计划量
     */
    private Integer monthCount;

    /**
     * 折后计划金额
     */
    private Long monthMoney;

    /**
     * 折前计划金额
     */
    private Long beforeMonthMoney;

    /**
     * 任务量
     */
    private Integer taskCount;

    /**
     * 折后任务金额
     */
    private Long taskMoney;

    /**
     * 折前任务金额
     */
    private Long beforeTaskMoney;

    /**
     * 合同差量
     */
    private Integer contractDifferenceCount;

    /**
     * 折后满足度
     */
    private BigDecimal contractSatisfaction;

    /**
     * 折前满足度
     */
    private BigDecimal beforeContractSatisfaction;

    /**
     * 合同差
     */
    private Long contractDifferenceMoney;

    /**
     * 上旬量
     */
    private Integer monthFirstCount;

    /**
     * 上旬回复量
     */
    private Integer monthFirstReturnCount;

    /**
     * 上旬任务量
     */
    private Integer monthFirstTaskCount;

    /**
     * 中旬量
     */
    private Integer monthMiddleCount;

    /**
     *
     * 中旬回复量
     */
    private Integer monthMiddleReturnCount;

    /**
     * 中旬任务量
     */
    private Integer monthMiddleTaskCount;

    /**
     * 下旬量
     */
    private Integer monthLastCount;

    /**
     * 下旬回复量
     */
    private Integer monthLastReturnCount;

    /**
     * 下旬任务量
     */
    private Integer monthLastTaskCount;

    /**
     * 调整量
     */
    private Integer adjustCount;

    /**
     * 上旬调整量
     */
    private Integer monthFirstAdjustCount;

    /**
     * 上旬调整回复量
     */
    private Integer monthFirstAdjustReturnCount;

    /**
     * 上旬调整总量
     */
    private Integer monthFirstAdjustTotalCount;

    /**
     * 中旬调整量
     */
    private Integer monthMiddleAdjustCount;

    /**
     * 中旬调整回复量
     */
    private Integer monthMiddleAdjustReturnCount;

    /**
     * 中旬调整总量
     */
    private Integer monthMiddleAdjustTotalCount;

    /**
     * 下旬调整量
     */
    private Integer monthLastAdjustCount;

    /**
     * 下旬调整回复量
     */
    private Integer monthLastAdjustReturnCount;

    /**
     * 下旬调整总量
     */
    private Integer monthLastAdjustTotalCount;

    /**
     * M1滚动计划量
     */
    private Integer m1RollingPlanCount;

    /**
     * M1滚动回复量
     */
    private Integer m1RollingReturnCount;

    /**
     * M2滚动计划量
     */
    private Integer m2RollingPlanCount;

    /**
     * M2滚动回复量
     */
    private Integer m2RollingReturnCount;

    /**
     * M3滚动计划量
     */
    private Integer m3RollingPlanCount;

    /**
     * M3滚动回复量
     */
    private Integer m3RollingReturnCount;

    /**
     * 状态
     * 添加初始化：草稿
     * 单行编辑：完成
     */
    private Integer status;

    /**
     * 扩展字段
     */
    private String features;

    private String param1;

    private String param2;

    private String param3;

    /**
     * 版本
     */
    private Integer version;

    /**
     * 租户ID
     */
    private String tenantId;

    /**
     * 创建时间
     */
    private Date gmtCreate;

    /**
     * 更新时间
     */
    private Date gmtModified;

    /**
     * 创建人
     */
    private String creator;

    /**
     * 修改人
     */
    private String updater;

   private SalesPlanDetailFeatures salesPlanDetailFeatures;
}
